package com.rd.server.modules.sse.service;

import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

/**
 * sse 服务类
 */
public interface SseService {

    /**
     * 创建链接
     * @return
     */
    SseEmitter connect();

    /**
     * 加入房间
     * @param roomId 房间ID
     */
    void joinRoom(String roomId);

    /**
     * 离开房间
     */
    void leaveRoom();

    /**
     * 发送消息通知客户端
     * @param message
     */
    void sendMessage(String message);

    /**
     * 发送心跳包
     * 客户端调用此方法发送心跳，保持连接活跃
     */
    void sendHeartbeat();

    /**
     * 启动心跳检测任务
     * 服务端主动检测连接状态，清理无效连接
     */
    void startHeartbeatTask();

    /**
     * 停止心跳检测任务
     */
    void stopHeartbeatTask();

}
